home *** CD-ROM | disk | FTP | other *** search
/ PC World 2003 May / PCWorld_2003-05_cd.bin / Software / Topware / sandra / san944EN.exe / {app} / examples / SQL Server Schema.sql < prev    next >
Text File  |  2002-07-28  |  4KB  |  155 lines

  1.  
  2. --
  3. -- SQL Server 7.0/2000 Schema for Sandra Report
  4. --
  5. -- Database is assumed to have been created already.
  6. -- No size settings included, please add as required.
  7. --
  8. -- Copyright 2001-2002, C. A. Silasi, SiSoftware.
  9. -- All Rights Reserved.
  10. --
  11.  
  12. --USE Sandra;
  13.  
  14. --
  15. -- Kill all tables
  16. --
  17.  
  18. IF exists(select * from sysobjects where id = object_id('Item') and OBJECTPROPERTY(id, 'IsTable') = 1)
  19. DROP TABLE Item;
  20.  
  21. IF exists(select * from sysobjects where id = object_id('ItemGroup') and OBJECTPROPERTY(id, 'IsTable') = 1)
  22. DROP TABLE ItemGroup;
  23.  
  24. IF exists(select * from sysobjects where id = object_id('Device') and OBJECTPROPERTY(id, 'IsTable') = 1)
  25. DROP TABLE Device;
  26.  
  27. IF exists(select * from sysobjects where id = object_id('Class') and OBJECTPROPERTY(id, 'IsTable') = 1)
  28. DROP TABLE Class;
  29.  
  30. IF exists(select * from sysobjects where id = object_id('Module') and OBJECTPROPERTY(id, 'IsTable') = 1)
  31. DROP TABLE Module;
  32.  
  33. IF exists(select * from sysobjects where id = object_id('Report') and OBJECTPROPERTY(id, 'IsTable') = 1)
  34. DROP TABLE Report;
  35.  
  36. IF exists(select * from sysobjects where id = object_id('IDCount') and OBJECTPROPERTY(id, 'IsTable') = 1)
  37. DROP TABLE IDCount;
  38.  
  39. --
  40. -- Create new tables
  41. --
  42.  
  43. CREATE TABLE Report (
  44.     ID            INT IDENTITY (1,1),
  45.     ProgramName        VARCHAR(255),
  46.     ProgramVersion        VARCHAR(255),
  47.     RegisteredUser        VARCHAR(255),
  48.     RegisteredCompany    VARCHAR(255),
  49.     LicenceStatus        VARCHAR(255),
  50.     LicenceExtra        VARCHAR(255),
  51.     UserID            VARCHAR(255),
  52.     HostName        VARCHAR(255),
  53.     SystemID        VARCHAR(255),
  54.     WebUserID        VARCHAR(255),
  55.     RunID            VARCHAR(255),
  56.     RunDate            DATETIME,
  57.     Completed        BIT NOT NULL,
  58.  
  59.     CONSTRAINT        cnstRIID PRIMARY KEY(ID)
  60. );
  61.  
  62. CREATE TABLE Module (
  63.     ID            INT IDENTITY (1,1),
  64.     ReportID        INT NOT NULL,
  65.     Name            VARCHAR(255) NOT NULL,
  66.     TypeID            INT NOT NULL,
  67.     HasClass        BIT NOT NULL,
  68.     HasDevice        BIT NOT NULL,
  69.     HelpID            INT NOT NULL,
  70.  
  71.     CONSTRAINT        cnstMIID PRIMARY KEY(ID),
  72.     CONSTRAINT        cnstMRID FOREIGN KEY(ReportID) REFERENCES Report(ID)
  73. );
  74.  
  75. CREATE TABLE Class (
  76.     ID            INT IDENTITY (1,1),
  77.     ModuleID        INT NOT NULL,
  78.     Name            VARCHAR(255) NOT NULL,
  79.     TypeID            INT NOT NULL,
  80.     HelpID            INT NOT NULL,
  81.  
  82.     CONSTRAINT        cnstCIID PRIMARY KEY(ID),
  83.     CONSTRAINT        cnstCMID FOREIGN KEY(ModuleID) REFERENCES Module(ID)
  84. );
  85.  
  86. CREATE TABLE Device (
  87.     ID            INT IDENTITY (1,1),
  88.     ModuleID        INT NOT NULL,
  89.     ClassID            INT,
  90.     Name            VARCHAR(255) NOT NULL,
  91.     TypeID            INT NOT NULL,
  92.     HelpID            INT NOT NULL,
  93.  
  94.     CONSTRAINT        cnstDIID PRIMARY KEY(ID),
  95.     CONSTRAINT        cnstDMID FOREIGN KEY(ModuleID) REFERENCES Module(ID)
  96. );
  97.  
  98. CREATE TABLE ItemGroup (
  99.     ID            INT IDENTITY (1,1),
  100.     ModuleID        INT NOT NULL,
  101.     ClassID            INT,
  102.     DeviceID        INT,
  103.     Name            VARCHAR(255) NOT NULL,
  104.     TypeID            INT NOT NULL,
  105.     HelpID            INT NOT NULL,
  106.  
  107.     CONSTRAINT        cnstGIID PRIMARY KEY(ID),
  108.     CONSTRAINT        cnstGMID FOREIGN KEY(ModuleID) REFERENCES Module(ID)
  109. );
  110.  
  111. CREATE TABLE Item (
  112.     ID            INT IDENTITY (1,1),
  113.     ModuleID        INT NOT NULL,
  114.     GroupID            INT,
  115.     Name            VARCHAR(255) NOT NULL,
  116.     DataValue        VARCHAR(255),
  117.     IconID            INT NOT NULL,
  118.     TypeID            INT NOT NULL,
  119.     HelpID            INT NOT NULL,
  120.  
  121.     CONSTRAINT        cnstIIID PRIMARY KEY(ID),
  122.     CONSTRAINT        cnstIMID FOREIGN KEY(ModuleID) REFERENCES Module(ID)
  123. );
  124.  
  125. CREATE TABLE IDCount (
  126.     TableName        VARCHAR(10) PRIMARY KEY,
  127.     CurrentID        INT NOT NULL
  128. );
  129.  
  130. --
  131. -- Set-up keys/indexes
  132. --
  133.  
  134. CREATE INDEX ndxUserID ON Report (UserID);
  135.  
  136. CREATE INDEX ndxSystemID ON Report (SystemID);
  137.  
  138. CREATE INDEX ndxWebUserID ON Report (WebUserID);
  139.  
  140. CREATE INDEX ndxModuleName ON Module (Name);
  141.  
  142. CREATE INDEX ndxItemName ON Item (Name);
  143.  
  144. --
  145. -- Inserts
  146. --
  147.  
  148. INSERT INTO IDCount (TableName, CurrentID) VALUES ('Item', 1);
  149. INSERT INTO IDCount (TableName, CurrentID) VALUES ('ItemGroup', 1);
  150. INSERT INTO IDCount (TableName, CurrentID) VALUES ('Device', 1);
  151. INSERT INTO IDCount (TableName, CurrentID) VALUES ('Class', 1);
  152. INSERT INTO IDCount (TableName, CurrentID) VALUES ('Module', 1);
  153. INSERT INTO IDCount (TableName, CurrentID) VALUES ('Report', 1);
  154.  
  155.